package xaj.weavingtest.ast.contains;

import java.util.HashSet;
import java.util.Set;
import abc.aspectj.ast.Pointcut_c;
import polyglot.ast.Node;
import polyglot.util.Position;
import polyglot.visit.NodeVisitor;
import xaj.weavingtest.ast.contains_eaj.Contains;

public class SC_Contains extends abc.aspectj.ast.Pointcut_c {
    private abc.aspectj.ast.Pointcut param;
    
    public SC_Contains(polyglot.util.Position pos, abc.aspectj.ast.Pointcut p) {
        super(pos);
        this/*weavingtest.SC_Contains*/.param = p; }
    
    public boolean isDynamic() { return false; }
    
    public abc.weaving.aspectinfo.Pointcut makeAIPointcut() {
        return new xaj.weavingtest.ast.contains.AspectInfoContains(this/*weavingtest.SC_Contains*/.position,
                                                  this/*weavingtest.SC_Contains*/.param.makeAIPointcut());
    }
    
    public java.util.Set pcRefs() { return this/*weavingtest.SC_Contains*/.param.pcRefs(); }
    
    xaj.weavingtest.ast.contains.SC_Contains reconstruct(abc.aspectj.ast.Pointcut param) {
    	xaj.weavingtest.ast.contains.SC_Contains ret = this;
        if (param != this/*weavingtest.SC_Contains*/.param) {
            ret = new xaj.weavingtest.ast.contains.SC_Contains(this/*weavingtest.SC_Contains*/.position,param); }
        return ret;
    }
    
    public polyglot.ast.Node visitChildren(polyglot.visit.NodeVisitor v) {
        abc.aspectj.ast.Pointcut newParam =
          (abc.aspectj.ast.Pointcut) visitChild(this/*weavingtest.SC_Contains*/.param, v);
        return reconstruct(newParam);
    }
    
    public void onWeaving() {  }
    
    public polyglot.ast.Node desugar() { return null; }
}
